import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;

public class LinkedListPractice {
    //练习遍历LinkedList
    public static void main(String[] args) {
        LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(1);
        linkedList.add(2);
        linkedList.add(3);
        linkedList.add(4);
        linkedList.add(5);
        linkedList.add(6);

        //利用for循环遍历
        System.out.println("利用for循环遍历");
        for (int i = 0; i < linkedList.size(); i++) {
            System.out.print(linkedList.get(i)+" ");
        }

        System.out.println();
        //利用foreach遍历
        System.out.println("利用foreach遍历");
        for (Integer i : linkedList) {
            System.out.print(i + " ");
        }
        System.out.println();
        //利用迭代器遍历
        System.out.println("利用迭代器进行遍历");
        Iterator<Integer> iterator = linkedList.iterator();
        while(iterator.hasNext()) {
            System.out.print(iterator.next() + " ");
        }
        System.out.println();

        //利用列表迭代器进行遍历
        System.out.println("利用列表迭代器进行遍历");
        ListIterator<Integer> listIterator = linkedList.listIterator();
        while(listIterator.hasNext()) {
            System.out.print(listIterator.next() + " ");
        }
        System.out.println();

        //利用列表迭代器从后向前遍历
        System.out.println("利用列表迭代器从后向前遍历");
        ListIterator<Integer> listIterator1 = linkedList.listIterator(linkedList.size());
        while(listIterator1.hasPrevious()) {
            System.out.print(listIterator1.previous() + " ");
        }
        System.out.println();
    }
}
